package de.mnit.basis.swt.element.steuer;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;

import de.mnit.basis.daten.konstant.position.POSITION;
import de.mnit.basis.daten.konstant.position.POSITION_H;
import de.mnit.basis.fehler.Fehler;
import de.mnit.basis.fehler.system.F_Sys_Datei;
import de.mnit.basis.swt.grafik.Bild_SWT;
import de.mnit.basis.swt.grafik.S_Bild_SWT;


/**
 * @author Michael Nitsche
 */
public class SWT_Label extends A_SWT_Steuer<SWT_Label,Label> {

	private String text;


	public SWT_Label() {
		this("");
	}

	public SWT_Label(String text) {
		this.text=text;
	}


	// FUNKTION

	public SWT_Label s1_POSITION(POSITION_H a) {
		PN_Erzeugt();
		Fehler.objekt.wenn_Null(a);
		if(a==POSITION.LINKS)  this.s1_Style(SWT.LEFT);
		if(a==POSITION.MITTE)  this.s1_Style(SWT.CENTER);
		if(a==POSITION.RECHTS) this.s1_Style(SWT.RIGHT);
		return this;
	}

	public SWT_Label s1_Umbrechen() {
		PN_Erzeugt();
		this.s1_Style(SWT.WRAP);
		return this;
	}

	public SWT_Label sText(String t) {
		if(this.istErzeugt())
			swt().setText(t);
		else this.text=t;
		return this;
	}

	public SWT_Label sBild(Object datei) throws F_Sys_Datei {
		swt().setImage(Bild_SWT.neu_Direkt(datei).gImage());
		return this;
	}

	// LESEN

	public S_Bild_SWT gBild() {
		try {
			return Bild_SWT.neu(swt().getImage());
		}
		catch(F_Sys_Datei e) {
			throw Fehler.sonstige.da_Unmoeglich(e);
		}
	}

	public String gText()   { return swt().getText(); }

	// ERZEUGEN

	protected int style3()   { return SWT.NONE; }

	protected Label roh(Composite basis, int style) {
		return new Label(basis,style);  // TODO SWT.BORDER
	}

	protected void init3()   { swt().setText(this.text); }

}
